/**
 * 
 */
package com.bstek.code.util;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Properties;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;


/**
 * @description 
 * @author zhangkun
 * @date 2020年5月22日
 *
 */
public class VelocityUtil {
	
	/**
	 * 
	 * @description 初始化VelocityContext对象
	 * @author zhangkun
	 * @date 2020年5月21日
	 * @return
	 */
	public static VelocityContext initContext() {
		Properties p = new Properties();
		p.setProperty(Velocity.RESOURCE_LOADER, "class");
		p.setProperty(Velocity.INPUT_ENCODING, "utf-8");
		p.setProperty(Velocity.OUTPUT_ENCODING, "utf-8");
		p.setProperty("class.resource.loader.class",
				"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
		Velocity.init(p);
		// 取得velocity上下文
		VelocityContext context = new VelocityContext();
		return context;
	}
	
	/**
	 * 
	 * @description 根据模板生成文件
	 * @author zhangkun
	 * @date 2020年5月22日
	 * @param context velocity上下文
	 * @param path 生成的文件存放路径+文件名
	 * @param templatePath 模板文件路径
	 * @throws FileNotFoundException 
	 */
	public static void generateFile(VelocityContext context, String filePath,String templatePath) throws FileNotFoundException{
		Template template = Velocity.getTemplate(templatePath);
		StringWriter writer = new StringWriter();
		template.merge(context, writer);
		PrintWriter filewriter = new PrintWriter(new FileOutputStream(filePath), true);
		filewriter.println(writer.toString());
		filewriter.close();
	}
	
	
}
